package com.dcy.singleton.type2;

/**
 * @Author：dcy
 * @Description:
 * @Date: 2021/1/19 14:17
 */
public class SingletonTest02 {
    public static void main(String[] args) {
        // 测试
        Singleton instance = Singleton.getInstance();
        Singleton instance2 = Singleton.getInstance();
        System.out.println(instance == instance2);
        System.out.println(instance.hashCode());
        System.out.println(instance2.hashCode());
    }
}

//饿汉式（静态代码块）
class Singleton{

    /**
     * 2、本类内部创建对象实例
     */
    private static Singleton instance;

    /**
     * 1、构造器私有化，外部不能new
     */
    private Singleton(){

    }

    static {
        // 在静态代码块中，创建单例对象
        instance = new Singleton();
    }
    /**
     * 3、提供一个公有的静态方法，返回实力对象
     * @return
     */
    public static Singleton getInstance(){
        return instance;
    }
}
